1. Field of the Invention
The present invention relates to a data communication apparatus and a data communication method which are suitable to communicate image data by using a call connection protocol.
2. Description of the Related Art
Recently, IP telephones using a call connection protocol, such as H.323 or SIP, have become prevalent and IP facsimiles in accordance with, e.g., T.38 of the ITU-T recommendations, have also been put into the market.
FIG. 9 illustrates one example of an IP telephone connection process using SIP.
An INVITE request 900 is sent from a transmitter to a transmitter-side SIP server. Responsively, the transmitter-side SIP server sends an INVITE request 902 to a receiver-side SIP server and also replies, to the transmitter, a “Trying” signal message 901 indicating that the transmitter-side SIP server has received the message and is now under trying. Upon receiving the INVITE request 902, the receiver-side SIP server sends an INVITE request 904 to a receiver and also replies a “Trying” signal message 903 to the transmitter-side SIP server.
Upon receiving the INVITE request 904, the receiver starts a ringing tone and sends, to the receiver-side SIP server, a “Ringing” signal message 905 indicating that the receiver is now under ringing. The “Ringing” signal message 905 is transferred to the transmitter through “Ringing” signal messages 906 and 907.
When a user on the receiver side answers the phone, an OK signal message 908 is sent from the receiver to the receiver-side SIP server and is further transferred to the transmitter through OK signal messages 909 and 910. The transmitter having received the OK signal message 910 sends an ACK signal message 911 directly to the receiver. The sequence of call control protocol is then brought to an end.
After the end of the call control sequence, the processing is transited to a media session (Media Session) in which data 912-915 obtained by coding voice data based on, e.g., PCM, are communicated. When a handset is put back after the end of a talk, a BYE signal 916 is sent from the transmitter to the receiver and an OK signal 917 is replied, as a response signal to the BYE signal 916, from the receiver to the transmitter. All steps of the communication are thereby brought to an end.
FIG. 10 illustrates, by way of example, details of the INVITE request 900 shown in FIG. 9.
In a field 950, it is described that the message is the INVITE request. A “Via” header field 951 indicates a transport used for a transaction. A “Max-Forwards” field 952 is a field for limiting the number of hops which are allowed to pass until reaching the receiver.
A field 953 indicates that a receiving person is Bob, and a field 954 indicates that a sending person is Alice. A “Call-ID” header field 955 indicates an identifier for grouping continuous messages. The same Call-Id is used for all of the requests and the corresponding responses.
A “CSeq” header field 956 indicates the number used for identifying and numbering the transactions in order. A “Contact” header field 957 provides SIP URI that can be used to make a contact. A “Content-Type” header field 958 indicates the media type of the message, and a “Content-Length” header field 959 indicates the size of the sent message.
A G3 facsimile in accordance with T.30 is required to have a plurality of telephone lines in order to receive data from a plurality of senders at the same time, while an IP facsimile can make a plurality of connections at the same time because it utilizes one network line in a broad band.
In this respect, Japanese Patent Laid-Open No. 2005-184351 proposes a method of managing the number of call connections under the connected state. The method according to Japanese Patent Laid-Open No. 2005-184351 includes, in a VoIP gateway apparatus, the steps of managing the number of call connections simultaneously under the connected state at that time for at least one assigned telephone number, selecting a telephone number for which the number of call connections simultaneously under the connected state at that time is smaller than the preset allowable number, and executing call control of the selected telephone number.
However, because the SIP protocol does not maintain a network connection between a client and a server which are connected to each other, it is required to process, in addition to commands from a partner who has first requested a connection, commands from another partner in parallel who has then requested a connection. In other words, the SIP protocol operates such that the connection is cut when communication of each message with one partner is ended, and a message communicated with another partner is mixed between one command and the next command. Accordingly, when call connections to a plurality of partners are processed in parallel, status management has to be executed per Call-ID of each JOB in the connected state.
A program for executing such status management operates so as to monitor the status of the receiver to thereby recognize the status of the receiver and commands receivable in the current status, and to reply a predetermined error code when a command other than the receivable commands is received. When one of the receivable commands is received, a complicated process is performed which includes, e.g., steps of executing an internal program corresponding to each command and shifting the status of the receiver from one to another. By executing such a program, resources required to execute the program are occupied.
In some cases, therefore, when call connections to a plurality of partners are processed in parallel, the resources are occupied by the call connection to the partner who has first requested the connection, and sufficient resources are not ensured for communication with the partner who has then requested the connection. Also, because the number of connected JOBs cannot be restricted on the receiver side, there is a possibility that a very large number of JOBs have to be simultaneously processed in parallel. Coping with that case increases the program size, the capacity of a memory used, and the program development cost, thus resulting in a difficulty in performing the operation with an inexpensive system.